python работа с файлами
Перемещать и копировать файлы по каталогам нам поможет функции модуля shutil. Подключаем модуль shutil в начале нашего скрипта на Python, потом уже получим доступ к его функциям. Функции модуля shutil не ограничиваются только на копирование и перемещение, мы обсудим разные методики использования функции даного модуля.
Функция copyfile(Копируемый файл, путь куда копируем)
Копирует содержимое файла по указанному пути и создает новый в указанном во втором параметре месте. Методанные при этом не копируются т.е. права доступа и т.д. Если место куда мы копируем уже имеет такой файл он будет перезаписан. В случае неудачи копирования, возбуждается исключение IOError.>>> import shutil # Подключаем модуль >>> shutil.copyfile(r'/home/py/mouse.txt', r'/home/py/new-mouse.txt') >>> # Указанный путь не будет существовать >>> shutil.copyfile(r'/home/py/mouse.txt', r'/go/here/no.txt') IOError: [Errno: 2] No such file or directory '/go/here/no.txt'
Функция copy(Копируемый файл, куда копируем)
Копирует файл вместе с его правами. В случае если файл уже существовал, он будет перезаписан. Неудачное копирование вызовет исключение IOError.
shutil.copy(r'my_file.txt', r'new_file.txt')Далее...
Файл - области постоянной памяти в вашем компьютере, которыми управляет операционная система. Объект файла создает функция open или file.
При работе с файлами используется буферизация и она включена по умолчанию. При буферизации данные не записываются в файл непосредственно при вызове метода записи. Они записываются, когда все действия с файлом прекращены или вызвана функция close().
f1 = open("test") # по умолчанию файл открывается в режиме r(чтение) f2 = open("test", "w") # файл открывается для записи f2 = open("test", "w", 0) # отключает буферизацию, данные сразу записываются в файл (например при вызове метода write()) f3 = open("test", "a") # файл открывается для записи в конец f4 = open("test", "a+") # файл открывается как для чтения так и для записи в конец f5 = open("test", "ab") # добавляя к режиму символ "b" мы можем работать с файлам как с двоичными данными(интерпритация символа новой строки отключена) xfile = open("test.txt") xString = xfile.read() # прочитать весь файл в строку xString = xfile.read(N) # прочитать N-байтов в строку xString = xfile.readline() # прочитать текстовую строку включая символ конца строки xList = xfile.readlines() # прочитать весь файл целиком в список строк xfile.write(xString) # записать строку в файл xfile.writelines(xList) # записать строки из списка в файл xfile.close() # закрытие файла в ручную (выполняется по окончанию работы с файлом) xfile.flush() # выталкивает выходные буферы на диск, файл остается открытым xfile.seek(N) # изменяет текущую позицию в файле для следующей операции, смещая ее на N-байтов от начала файлаПример скрипта который сам создает файлы Python c баш-строкой.
#!/usr/bin/env python # -*- coding: utf-8 -*- myfile = open("newfile.py", "w") myfile.write("#!/usr/bin/env python\n# -*- coding: utf-8 -*-") myfile.close()Скачать и сохранить файл, используя Python
#!/usr/bin/env python # -*- coding: utf-8 -*- url = "http://www.google.ru/index.html" import urllib webFile = urllib.urlopen(url) localFile = open(url.split('/')[-1], 'wb') localFile.write(webFile.read()) webFile.close() localFile.close()Далее...